﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;
using Upeu.Matricula.Api.Models;
using Upeu.Matricula.Data.Business;
using Upeu.Matricula.Data.Entities;
//Alvaro Huanca Perez

namespace Upeu.Matricula.Api.Controllers
{
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    public class TutorController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<TutorModel> Get()
        {
            //return new string[] { "value1", "value2" };
            return TutorBusiness.GetListByFilter("").Select(
                t => new TutorModel
                {
                    Tutor_Id = t.Tutor_Id,
                    Nombre = t.Nombre,
                    Apellido_Paterno = t.Apellido_Paterno,
                    Apellido_Materno = t.Apellido_Materno,
                    Direccion = t.Direccion,
                    tutorDni = t.tutorDni,
                    Telefono = t.Telefono ,
                    E_mail = t.E_mail,
                });
        }

        // GET api/<controller>/5
        public TutorModel Get(Guid id)
        {
            Tutor t = TutorBusiness.GetById(id);
            return new TutorModel
            {
                Tutor_Id = t.Tutor_Id,
                Nombre = t.Nombre,
                Apellido_Paterno = t.Apellido_Paterno,
                Apellido_Materno = t.Apellido_Materno,                
                Direccion = t.Direccion,
                tutorDni = t.tutorDni,
                Telefono = t.Telefono,
                E_mail = t.E_mail,
            };
        }

        // POST api/<controller>
        public TutorModel Post([FromBody]TutorModel model)
        {
            Tutor t = TutorBusiness.Create(new Tutor
            {
                Nombre = model.Nombre,
                Apellido_Paterno = model.Apellido_Paterno,
                Apellido_Materno = model.Apellido_Materno,                
                Direccion = model.Direccion,
                tutorDni = model.tutorDni,
                Telefono = model.Telefono,
                E_mail = model.E_mail,
            });
            return new TutorModel
            {
                Tutor_Id =  t.Tutor_Id,
                Nombre = t.Nombre,
                Apellido_Paterno = t.Apellido_Paterno,
                Apellido_Materno = t.Apellido_Materno,                
                Direccion = t.Direccion,
                tutorDni = t.tutorDni,
                Telefono = t.Telefono,
                E_mail=t.E_mail,
            };
        }

        // PUT api/<controller>/5
        public TutorModel Put(Guid id, [FromBody]TutorModel model)
        {
            Tutor t = TutorBusiness.Update(new Tutor
            {
                Tutor_Id = id,
                Nombre = model.Nombre,
                Apellido_Paterno = model.Apellido_Paterno,
                Apellido_Materno = model.Apellido_Materno,                
                Direccion = model.Direccion,
                tutorDni = model.tutorDni,
                Telefono = model.Telefono,
                E_mail=model.E_mail,
            });
            return new TutorModel
            {
                Tutor_Id = t.Tutor_Id,
                Nombre  = t.Nombre,
                Apellido_Paterno = t.Apellido_Paterno,
                Apellido_Materno = t.Apellido_Materno,                
                Direccion = t.Direccion,
                tutorDni = t.tutorDni,
                Telefono = t.Telefono,
                E_mail =t.E_mail,

            };
        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            TutorBusiness.Delete(id);
        }
    }
}